/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.latesis.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;


/**
 *
 * @author Alan -  Desarrollo
 */
@Entity
@Table(name = "TBL_DIRECCION_CLIENTE")
public class DireccionClienteBean implements Serializable{
    
    private Long id;    
    private String direccion;    
    private String referencia;        
    private String estado;    
    private Double latitud;    
    private Double longitud;    
    private String tipoGPS;        
    private ZonaBean zona;
    private ClienteBean cliente;
    private List<ServicioBean> servicios;
    
    public DireccionClienteBean(){
        servicios = new ArrayList<ServicioBean>();
    }

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    public Long getId() {
        return id;
    }

    @Column(name="direccion",length = 300, nullable = false)
    public String getDireccion() {
        return direccion;
    }

    @Column(name="referencia",length = 300, nullable = true)
    public String getReferencia() {
        return referencia;
    }

    @Column(name="estado",length = 1, nullable = false)
    public String getEstado() {
        return estado;
    }

    @Column(name="latitud",nullable = true)
    public Double getLatitud() {
        return latitud;
    }

    @Column(name="longitud",nullable = true)
    public Double getLongitud() {
        return longitud;
    }

    @Column(name="tipoGPS",length = 1, nullable = true)
    public String getTipoGPS() {
        return tipoGPS;
    }

    @ManyToOne(optional = true, fetch = FetchType.LAZY)
    @JoinColumn(name="zonaId")        
    public ZonaBean getZona() {
        return zona;
    }

    @ManyToOne(optional = true, fetch = FetchType.LAZY)
    @JoinColumn(name="clienteId")        
    public ClienteBean getCliente() {
        return cliente;
    }
    
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "direccion")
    public List<ServicioBean> getServicios() {
        return servicios;
    }
    
    public void setId(Long id) {
        this.id = id;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public void setLatitud(Double latitud) {
        this.latitud = latitud;
    }

    public void setLongitud(Double longitud) {
        this.longitud = longitud;
    }

    public void setTipoGPS(String tipoGPS) {
        this.tipoGPS = tipoGPS;
    }

    public void setZona(ZonaBean zona) {
        this.zona = zona;
    }   

    public void setCliente(ClienteBean cliente) {
        this.cliente = cliente;
    }
    
    public void setServicios(List<ServicioBean> servicios) {
        this.servicios = servicios;
    }
    

    
   

    
}
